package com.yiqi.lottery.feature.lottery.contract;

import com.suozhang.framework.entity.bo.PageData;
import com.suozhang.framework.framework.BasePresenter;
import com.suozhang.framework.framework.BaseView;
import com.yiqi.lottery.entity.bo.*;

import io.reactivex.Observable;

import java.util.HashMap;
import java.util.List;

public interface HallContract {

    interface Model {
        Observable<PageData<CouprceBo>> getHallList(int page, int sort, Integer bet_type);

        Observable<CouprceBo> getHallDetail(String id);

        Observable<String> createCopurch(HashMap<String, Object> couprceBo);

        Observable<String> copurchSubmit(CouprceBo couprceBo);

        Observable<String> copurchToPay(PayBo payBo);

        Observable<String> cancleCopurch(String id);
    }

    interface View extends BaseView {
        void showHallListSuccess(PageData<CouprceBo> hallBoPageData);

        void showHallListMoreSuccess(PageData<CouprceBo> hallBoPageData);

        void showHallListMoreError(String ex);

        void showHallListError(String ex);

        void showHallListEmpty();

        void showHallDetailSuccess(CouprceBo msg);

        void showCopurchSubmitSuccess(String msg);

        void showCopurchPaySuccess(String msg);

        void showCancleSuccess();

        void showCancleError(String ex);
    }


    interface Presenter extends BasePresenter {
        void getHallList(int page, int sort, Integer bet_type);

        void getHallMoreList(int page, int sort, Integer bet_type);

        void getHallDetail(String id);

        void createCopurch(int type, int multiple, int mut_num, String bet_code, String issue, String amount_fee, String share,
                           String percentage, String subscribe, String guarantee, String declaration, String desc, String finish_time);

        void copurchSubmit(Integer copurce_id, Integer share);

        void copurchToPay(int pay_type, Integer copurce_list_id);

        void cancleCopurch(String id);
    }
}
